/**
 * 
 */
package core;

import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JLabel;

import stub.IGestionRemota;
import utilidades.ViewerData;
import utilidades.ZipUtility;
import contenedorSpring.Contenedor;

/**
 * @author Elkin Torres
 *
 */
public class CorePantalla extends Thread{

	private JLabel escritorio;
	private String ip;
	private Boolean estado;
	private ViewerData viewer;
	/**
	 * @param estado the estado to set
	 */
	public void setEstado(Boolean estado) {
		this.estado = estado;
	}

	public void setEscritorio(JLabel escritorio) {
		this.escritorio = escritorio;
		estado = true;
	}
	
	/**
	 * @param ip the ip to set
	 */
	public void setIp(String ip) {
		this.ip = ip;
	}

	/**
	 * @param viewer the viewer to set
	 */
	public void setViewer(ViewerData viewer) {
		this.viewer = viewer;
	}

	public void run(){
		IGestionRemota remoto = (IGestionRemota) Contenedor.getSingleton().getApplicationContext().getBean("servidorRMI");
		while(estado){
			byte[] temp = remoto.getPantalla(ip);
			
			ImageIcon tmp = new ImageIcon(ZipUtility.decompress(temp));
			ImageIcon tmp2 = new ImageIcon(tmp.getImage().getScaledInstance(escritorio.getWidth(), escritorio.getHeight(), Image.SCALE_DEFAULT));
			viewer.setScreenRect(escritorio.getBounds());
			escritorio.setIcon(tmp2);
			escritorio.updateUI();
			
			try {
				sleep(10);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}
